Various forms of storage systems are used today. These forms include direct attached storage, network attached storage (NAS) systems, storage area networks (SANs), and others. Storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system (may also be referred to as a “server” or “storage server”) executing a storage operating system configured to store and retrieve data on behalf of one or more client computing systems at one or more storage devices. The storage operating system exports data stored at storage devices as a storage volume. A storage volume is a logical data set which is an abstraction of physical storage, combining one or more physical mass storage devices or parts thereof into a single logical storage object. From the perspective of a client computing system each storage volume can appear to be a single storage device. However, each storage volume can represent storage space in one storage device, an aggregate of some or all of the storage space in multiple storage devices.
The need for electronic storage continues to increase with the rapid growth of the Internet, social media and electronic commerce. As storage space continues to grow in data centers, it is desirable for a storage operating system to optimally select storage volumes for storing client data. Conventional techniques randomly select a storage volume from among a plurality of available storage volumes at any given time. The random selection may be undesirable in an environment where a large amount of information is moved to and from storage devices. Continuous efforts are being made to streamline the process for allocating and managing storage volumes.